// 导入 Pinia 的 defineStore 函数，用于定义 Vuex 的 store
import {defineStore} from "pinia";
import axios from "axios";

/**
 * 创建并导出一个名为 'general' 的 store
 * 这个 store 用于管理应用中的通用状态，例如用户信息
 */
export const useStore = defineStore('general', {
    // 定义 store 的状态
    state: () => {
        return {
            user: {
                id:-1,
                username: '',  // 用户名
                email: '',     // 用户邮箱
                role: '',      // 用户角色
                avatar: null,    // 用户头像
                registerTime: null // 用户注册时间
            },
            forum:{
                types:[]
            }
        }
    }, getters: {
        avatarUrl() {
            if (this.user.avatar)
                return `${axios.defaults.baseURL}/images${this.user.avatar}`
            else return 'https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/samantha/logo-icon-white-bg.png'
        }
    },actions:{
        findTypeById(id){
            for(let type of this.forum.types)
                if(type.id===id)
                    return type
        },avatarUserUrl(avatar) {
            if (avatar)
                return `${axios.defaults.baseURL}/images${avatar}`
            else return 'https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/samantha/logo-icon-white-bg.png'
        }
    }
})
